package cn.px.dao.entity.purchase;

import lombok.Data;

import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.time.LocalDateTime;

import lombok.experimental.Accessors;
import cn.px.common.bean.DataScope;

import javax.persistence.Transient;
import java.math.BigDecimal;

/**
 * @Description 采购总需求计划实体类
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
 */
@Data
@Accessors(chain = true)
@Table(name = "t_purchase_demand_plan")
public class PurchaseDemandPlan implements Serializable {

    /**
     * 主键
     */
    @Id
    private String id;
    /**
     * 名称
     */
    private String name;
    /**
     * 公司ID
     */
    private String companyId;
    private String regionId;
    private String groupId;
    /**
     * 公司名称
     */
    private String companyName;
    /**
     * 项目主键
     */
    private String projectId;
    private String countryCode;
    private String projectCode;
    /**
     * 项目名称
     */
    private String projectName;
    private Integer projectMoneyType;
    private BigDecimal accountExchangeRate;
    /**
     * 类别
     */
    private Integer type;
    /**
     * 资金预算
     */
    private BigDecimal planMoney;
    /**
     * 明细控制总额
     */
    private BigDecimal planListControlMoney;
    /**
     * 明细总额
     */
    private BigDecimal planListMoney;
    /**
     * 已用资金
     */
    private BigDecimal usedMoney;
    /**
     * 进度
     */
    private BigDecimal progress;
    /**
     * 数量
     */
    private BigDecimal quantity;
    /**
     * 已购数量
     */
    private BigDecimal boughtQuantity;
    /**
     * 已到数量
     */
    private BigDecimal arrivedQuantity;
    /**
     * 未到数量
     */
    private BigDecimal notArriveQuantity;
    /**
     * 美元汇率
     */
    private BigDecimal dollarExchangeRate;
    /**
     * 状态
     */
    private Integer status;
    /**
     * 拒绝原因
     */
    private String refuseReason;
    /**
     * 申请时间
     */
    private LocalDateTime applyTime;
    /**
     * 审核时间
     */
    private LocalDateTime auditTime;
    /**
     * 工作流实例ID
     */
    private String processInstanceId;

    private Integer auditNode;
    /**
     * 备注
     */
    private String remark;
    /**
     * 删除标志
     */
    private Integer delFlag;
    /**
     * 创建人
     */
    private String createdUserId;
    /**
     * 创建人名称
     */
    private String createdUserName;
    /**
     * 创建时间
     */
    private LocalDateTime createdTime;
    /**
     * 更新人
     */
    private String updateUserId;
    /**
     * 更新人名称
     */
    private String updateUserName;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 增加金额
     */
    private BigDecimal addMoney;
    /**
     * 增加数量
     */
    private BigDecimal addQuantity;

    /**
     * 数据权限
     */
    @Transient
    private DataScope dataScope;

    /**
     * 当前审批用户
     */
    @Transient
    private String currentAuditUserName;

}
